1. Field of the Invention
The invention relates to provisioning of communication services and more particularly to a method and apparatus for temporal control of the provisioning process and an object programming language for developing provisioning models.
2. Description of the Related Art
The term “provisioning” refers to accomplishing work processes necessary to provide communications service installation, configuration and management for various parties. For example, when new telephone service is ordered by a customer, the phone company may have to make various physical connections to build circuits as well as various data entries into a customer database, a billing system, and the like. The provisioning process becomes even more complicated for Internet service. For example, when provisioning, dial up, cable, or Digital Subscriber Line (DSL) Internet service for a new customer, the Internet Service Provider (ISP) must accomplish a plurality of work processes such as configuring and creating an email account, configuring and creating a hosting account, and establishing DHCP (Dynamic Host Configuration Protocol).
U.S. Pat. Nos. 5,774,689, 5,790,633, 5,881,131, and 5,937,048 are representative of the state of the art in communications provisioning systems. U.S. Pat. No. 5,774,689 discloses a provisioning system in which information relating to infrastructure components are stored in a database as objects. However, these patents fail to disclose flexible provisioning engines or programming methods therefor. Specifically, conventional provisioning methods do not permit flexible temporal control of the various work processes that must be accomplished. For example, it is often necessary to attempt some provisioning work processes plural times before they are successfully accomplished because of errors and delays inherent in complex communication networks. Further, some work processes must be successfully accomplished prior to beginning another work process. For those reasons, provisioning is very complex and conventionally has required intervention of a customer service representative to take services request information from a customer and to ensure that all work processes are accomplished successfully and in the right order.
U.S. Pat. Nos. 5,946,485, 5,019,961, 5,862,372, and 6,014,138 disclose various object oriented programming techniques for facilitating flexible programming. These patents, like other examples of object oriented programming, do not provide for temporal control of work processes and thus are not suitable for the complexities of provisioning processes.
U.S. Pat. No. 5,283,896 discloses a system for controlling mutually exclusive resources, such as computer peripheral devices, using Petri Net techniques. Each task is represented by an underlying state machine having a single token, i.e. state. The tasks are arranged sequentially or in parallel based on the order in which the tasks are to be executed. This reference does not relate to communications provisioning techniques and does not teach or suggest the temporal control of work processes as is desirable in provisioning systems.
The ability of communications service providers to handle the volume of service installations and the management of the service delivery requirements is further limited by the fact that there are a myriad of commercial customer management and network device configuration systems. In order to minimize the possibility of affecting current service due to system incompatibilities, service providers often must use systems from only a single vendor for customer care applications and a single vendor for network solutions. However, this approach locks providers into long-term vendor relationships and can limit the provider's ability to create and deliver new services. A more flexible provisioning engine would alleviate this limitation.